/*
 * Copyright (c) Huawei Technologies Co., Ltd. 2023-2023. All rights reserved.
 * Description: ffts plus task dispatcher
 * Author: limengjiao
 * Create: 2023-05-01
 */

#ifndef FFTS_CTX_PROVIDER_H
#define FFTS_CTX_PROVIDER_H

#include <unordered_map>
#include <memory>
#include "ffts_common.h"

namespace hccl {
class FftsCtxProvider {
public:
    HcclFftsContextsInfo* GetFftsCtx(bool enableCache, const std::string &key);

private:
    std::unordered_map<std::string, HcclFftsContextsInfo> fftsCtxMap;
    std::unique_ptr<HcclFftsContextsInfo> alwaysNewFftsCtx;
};

}  // namespace hccl
#endif